home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Systemmonitors / IdleLed / IdleLed.mod < prev    next >
Text File  |  1996-09-26  |  1KB  |  54 lines

  1. MODULE IdleLed;
  2.  
  3. IMPORT
  4.        e:Exec,
  5.        h:Hardware,
  6.        y:SYSTEM,
  7.        c:Cia;
  8.  
  9. VAR
  10.     mei:e.Interrupt;
  11.     met:e.TaskPtr;
  12.     oldp:SHORTINT;
  13.     proc:e.PROC;
  14.  
  15. PROCEDURE IdleIrq;
  16. (* $EntryExitCode- *)
  17. (* $SaveAllRegs+ *)
  18. BEGIN;
  19. y.INLINE(
  20.  01039H,0BFH,0E001H,0200H,0FDH,013C0H,0BFH,0E001H,04E75H,0F14H,0H,03F2H);
  21. END IdleIrq;
  22.  
  23. BEGIN;
  24. proc:=IdleIrq;
  25. c.base:=e.OpenResource(c.ciabName);
  26. IF c.base=NIL THEN;HALT(0);END;
  27. mei.node.type:=e.interrupt;
  28. mei.node.pri:=127;
  29. mei.node.name:=y.ADR("Idle-Led");
  30. mei.data:=NIL;
  31. mei.code:=proc;
  32. IF c.AddICRVector(h.ta,y.ADR(mei))#NIL THEN END;
  33. met:=e.FindTask(NIL);
  34. oldp:=met.node.pri;
  35. met.node.pri:=-127;
  36. h.ciab.cra:=SHORTSET{};
  37. h.ciab.talo:=058H;(*58*)
  38. h.ciab.tahi:=01BH;(*1b*)
  39. IF c.SetICR(SHORTSET{h.ta,h.setClr})#SHORTSET{} THEN END;
  40. WHILE ~(12 IN met.sigRecvd) DO
  41. h.ciab.cra:=SHORTSET{h.craStart,h.craLoad,h.craRunmode};
  42. h.ciaa.pra:=h.ciaa.pra + SHORTSET{h.led};
  43. END;
  44. h.ciab.cra:=SHORTSET{};
  45. IF c.SetICR(SHORTSET{h.ta})#SHORTSET{} THEN END;
  46. c.RemICRVector(h.ta,y.ADR(mei));
  47. met.node.pri:=oldp;
  48. END IdleLed.
  49.  
  50.  
  51.  
  52.  
  53.  
  54.